package com.xmall.product.define.dto.baseAttr;

import cn.hutool.core.util.StrUtil;
import com.xmall.product.define.dict.BoolTypeEnum;
import com.xmall.define.dict.DataTypeEnum;
import com.xmall.product.define.dto.group.AttrOptionDto;
import com.xmall.product.entity.BaseAttr;
import lombok.Data;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 返回数据格式：product - base_attr
 */
@Data
public class BaseAttrDto extends BaseAttr implements Serializable {

    /**
     * 可选项
     */
    private List<AttrOptionDto> optionList = new ArrayList<>();

    /**
     * 单值
     */
    private String value;

    /**
     * 多值
     */
    private List<String> values;

    /**
     * 描述信息（name+value+unit）
     */
    private String desc;

    /**
     * 数据类型
     */
    private String dataTypeName;

    public String getDesc() {
        Integer dataType = this.getDataType();
        String value = this.getValue();

        if(null == dataType || StrUtil.isBlank(value)) {
            return "";
        }

        if(DataTypeEnum.BOOL.getType() != dataType) {
            return this.getName()+"：" + value + this.getUnit();
        }

        if(StrUtil.isNumeric(value)) {
            return this.getName()+"：" + BoolTypeEnum.getNameByType(Integer.valueOf(value)) + this.getUnit();
        }

        return "";
    }

    public String getDataTypeName() {
        return DataTypeEnum.getNameByType(this.getDataType());
    }
}
